The field of the invention is industrial digital control systems, and particularly, programmable controllers such as that disclosed in U.S. Pat. No. 3,942,158 issued Mar. 2, 1976, and entitled "Programmable Logic Controller".
Programmable controllers are typically connected to industrial equipment such as assembly lines and machine tools to sequentially operate the equipment in accordance with a stored control program. In programmable controllers such as that disclosed in the above cited patent, for example, the control program is stored in a random access memory and includes instructions which are executed in rapid sequence to examine the condition of selected sensing devices on the controlled equipment and instructions which energize or deenergize selected operating devices on the controlled equipment contingent upon the status of one or more of the examined sensing devices.
The control program instructions are loaded into the random access memory by the user who employs a program panel such as that disclosed in U.S. Pat. No. 3,813,649 entitled "Controller Program Editor" or that disclosed in U.S. Pat. No. 4,070,702 issued Jan. 24, 1978, and entitled "Contact Histogram for Programmable Controller". Such program panels include a number of editing features which allow the user to delete, add and shift controller instructions within the control program. In other words, typical program panels allow the user access to that portion of the random access memory which stores the control program so that he can load and edit the control program which suits his own particular application.
Although user access to the entire control program storage area is highly desirable, there are instances in which it is critical that part of the control program should not be changed once it is entered and edited. If the user is to be allowed access to the control program portion of the memory to edit the other noncritical portions of the control program, therefore, some means for protecting the critical portion from unauthorized or inadvertent changes is required.